#pragma once

#ifndef _OGL_GLOBALS
#define _OGL_GLOBALS

#include <gl/glew.h>

#define _USE_MATH_DEFINES
#include <math.h>

// OGL Function Return Values
#define OGL_SUCCESS 0
#define OGL_WARNING 1
#define OGL_ERROR 2
#define OGL_FATAL 3

// Default Window Values
#define DEFAULT_WINDOW_NAME "OpenGL Renderer"
#define DEFAULT_WINDOW_WIDTH 1280
#define DEFAULT_WINDOW_HEIGHT 720
#define FRAME_COUNTER_ENABLED true

// Default GL Values for Window Control
#define DEFAULT_GL_DEPTH_FUNC GL_LESS

// Default GLFW Values for Window Control
#define DEFAULT_OPENGL_VERSION_MAJOR 3
#define DEFAULT_OPENGL_VERSION_MINOR 3

#define DEFAULT_DEBUG_CONTEXT GL_TRUE
#define DEFAULT_CULL_FACE_DIRECTION GL_FRONT
#define DEFAULT_FSAA_SAMPLES 0

// Program specific constants
#define MAX_SHADERS_PER_PROGRAM 8

// Geometry constants
#define DELTA_ANGLE ((float)M_PI / 128.0f)

typedef unsigned int OGLResult;

#endif